﻿using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Model.Extend;
using Estsh.Core.Model.Extend.IFModels;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repositories;

namespace Estsh.Core.Wms.IRepositories
{
    public interface IERPInterfaceRepository : IBaseRepository<BaseEntity>
    {
        public sys_if_rec_config GetEquipReqIFConfig(string Code);
        public WmsInterfaceResult GetInvokInterfaceData(ActionMessage actionMessage);
        public WmsInterfaceResult MaterialMasterMethod(string sid, List<SapPtInterface_Extend> sapPt);
        public WmsInterfaceResult SupplierMasterMethod(string sid, List<SapSuInterface> sapSu);
        public WmsInterfaceResult CustomerMasterMethod(string sid, List<SapCuInterface> sapCu);
        public WmsInterfaceResult CustomerItemMasterMethod(string sid, List<SapPtcptInterface> sapPtcpt);
        public WmsInterfaceResult BomMasterMethod(string sid, List<SapBomInterface_Extend> sapBom);
        public WmsInterfaceResult ASNDataMethod(string sid, List<SapAsnInterface> sapAsn);
        public WmsInterfaceResult PODataMethod(string sid, List<SapDspoInterface_Extend> sapDspo);
        public WmsInterfaceResult SalesAndDeliveryPlanMethod(string sid, List<SapDnInterface> sapDns);
        public WmsInterfaceResult SporadicEntryAndExitMethod(string sid, List<SapMiscoInterface> sapMiscos);
        public WmsInterfaceResult InventoryListMethod(string sid, List<SapCycoInterface> sapCycos);
        public WmsInterfaceResult InventoryDifferenceAdjustmentMethod(string sid, List<SapDifoInterface> sapDifos);
        public WmsInterfaceResult WorkCenterMethod(string sid,List<SapWorkcenter> sapWorkcenters);
        public WmsInterfaceResult ProcessInfoMethod(string sid, List<SapProcessinfo> processinfos);
        public WmsInterfaceResult StockInfoMethod(string sid, List<SapStockinfo> sapStockinfos);
        public WmsInterfaceResult WmsLogisticsMethod(string sid, List<WmsLogistics> wmsLogistics);
        public WmsInterfaceResult PersonMethod(string sid, List<WmsPerson> people);
        public WmsInterfaceResult WareHouseMethod(string sid, List<WmsWh> wmsWhs);
        public WmsInterfaceResult ZoneMethod(string sid, List<WmsZone> wmsZones);
        public WmsInterfaceResult QCMethod(string sid, List<WmsToqce> wmsToqcs);

        public WmsInterfaceResult MaterialGroupMethod(string sid, List<SapwlGroup> sapwlGroup);
        public WmsInterfaceResult RouttingMethod(string sid, List<SapRouting> sapwlGroup);
        public WmsInterfaceResult WorkItemMethod(string sid, List<SapWorkItem> sapItemListParam);
        public WmsInterfaceResult SalesHistoryMethod(string sid, List<SapSalesHistory> sapItemListParam);
        public WmsInterfaceResult CalculateOrderMethod(string sid, List<SapCalculate> sapItemListParam);
        public WmsInterfaceResult MonthReviewResultMethod(string sid, List<SapMonthReviewResult> sapItemListParam);
        public WmsInterfaceResult SalesOrderDateMethod(string sid, List<SapSalessOrder> sapItemListParam);
        public WmsInterfaceResult SalesReviewResultMethod(string sid, List<SapSalesReviewResult> sapItemListParam);
        public WmsInterfaceResult PurachasesReqMethod(string sid, List<SapPurchasesReq> sapItemListParam);
        public WmsInterfaceResult SapSalesReviewNoticeMethod(string sid, List<SapSalesReviewNotice> sapItemListParam);
        public WmsInterfaceResult PurachasesMethod(string sid, List<SapPurchases> sapItemListParam);
        public WmsInterfaceResult SporadicEntryAndExitExtendMethod(string sid, List<SapMiscoInterface_Extend> sapMiscos);
        public WmsInterfaceResult SalesAndDeliveryPlanExtendMethod(string sid, List<SapDnInterface_Extend> sapDns);
        public WmsInterfaceResult EquipmentDataMethod(string sid, List<SapEquipment> sapItemListParam);
        public WmsInterfaceResult EquipmentPdLineDataMethod(string sid, List<SapEquipmentPdLine> sapItemListParam);
        public WmsInterfaceResult DepartmentDataMethod(string sid, List<SapDepartment> sapItemListParam);
        public WmsInterfaceResult ERPUserDataMethod(string sid, List<SapUser> sapItemListParam);
    }
}
